#!/usr/bin/env python
# coding=utf-8
# @FileName :run.py
# @Time     :2022/2/9 19:15
# @Author   :ZXC
# @Desc     :主启动文件
import os
import shutil
import urllib3
import pytest
from loguru import logger

from config.settings import CONFIG_DIR, LOG_DIR, REPORT_DIR, LOG_CONFIG, extra_pool
from tools.common import allure_step
from tools.db_client import mysql_client, tidb_client

# 取消https请求的ssl告警
urllib3.disable_warnings()


def run():
    if REPORT_DIR.exists():
        # 清空报告目录
        shutil.rmtree(REPORT_DIR)
    if not LOG_DIR.exists():
        LOG_DIR.mkdir(parents=True, exist_ok=True)
    if not CONFIG_DIR.exists() or not CONFIG_DIR.joinpath('config.yaml').exists():
        pytest.exit("配置文件不存在，结束测试")

    # 解决 issues 句柄无效
    logger.remove()
    # 初始化logger
    logger.add(**LOG_CONFIG)
    logger.info("""
                 _    _         _      _____         _
  __ _ _ __ (_)  / \\  _   _| |_ __|_   _|__  ___| |_
 / _` | '_ \\| | / _ \\| | | | __/ _ \\| |/ _ \\/ __| __|
| (_| | |_) | |/ ___ \\ |_| | || (_) | |  __/\\__ \\ |_
 \\__,_| .__/|_/_/   \\_\\__,_|\\__\\___/|_|\\___||___/\\__|
      |_|
      开始测试      ...     ...     ...
    """)
    # 调用pytest.ini配置数据
    pytest.main()

    # 关闭数据库的连接，也不知道哪里导致了没关闭
    mysql_client.close()
    tidb_client.close()

    # 本地生成报告
    os.system(f'allure generate {REPORT_DIR}/data -o {REPORT_DIR}/html --clean')
    logger.success('报告已生成')
    logger.success("测试完成")


if __name__ == '__main__':
    run()
